using System;
using FytSoa.Common.Utils;
using System.ComponentModel.DataAnnotations;
using FytSoa.Application.Hr;
using FytSoa.Application.Sys;
using FytSoa.Domain.Hr;
using SqlSugar;

namespace FytSoa.Application.Crm;

/// <summary>
/// 客户回访记录
/// </summary>
public class CrmCustomerVisitDto : AppEntity
{
    /// <summary>
    /// 编号
    /// </summary>
    public string Number { get; set; }

    /// <summary>
    /// 回访内容
    /// </summary>
    [Required]
    [StringLength(100)]
    public string Title { get; set; }

    /// <summary>
    /// 客户编号
    /// </summary>
    [Required]
    public long CustomerId { get; set; }

    /// <summary>
    /// 客户信息
    /// </summary>
    public CrmCustomerSimpleDto Customer { get; set; }

    /// <summary>
    /// 客户联系人编号
    /// </summary>
    [Required]
    public long ContactId { get; set; }
    
    /// <summary>
    /// 客户联系人信息
    /// </summary>
    public CrmContactSimpleDto Contact { get; set; }

    /// <summary>
    /// 回访人
    /// </summary>
    [Required]
    public long EmployeeId { get; set; }
    
    /// <summary>
    /// 回访人员信息
    /// </summary>
    public HrEmployeeSimpleDto Employee { get; set; }

    /// <summary>
    /// 回访形式
    /// </summary>
    [Required]
    public long VisitFormId { get; set; }
    
    /// <summary>
    /// 回访形式信息
    /// </summary>
    public SysCodeSimpleDto VisitForm { get; set; }

    /// <summary>
    /// 项目编号
    /// </summary>
    [Required]
    public long ProjectId { get; set; }
    
    /// <summary>
    /// 项目
    /// </summary>
    public CrmProjectSimpleDto Project { get; set; }

    /// <summary>
    /// 满意度编号
    /// </summary>
    [Required]
    public long SatisfiedId { get; set; }
    
    /// <summary>
    /// 满意度信息
    /// </summary>
    public SysCodeSimpleDto Satisfied { get; set; }

    /// <summary>
    /// 反馈信息
    /// </summary>
    public string Remark { get; set; }

    /// <summary>
    /// 创建人
    /// </summary>
    public string CreateUser { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    [Required]
    public DateTime CreateTime { get; set; } = DateTime.Now;

    /// <summary>
    /// 更新人
    /// </summary>
    public string UpdateUser { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime? UpdateTime { get; set; }


}